package com.ccom.starter.file.service;

import java.io.File;
import java.io.InputStream;

/**
 * 对象存储服务
 * 键 oosKey，路径/文件名
 */
public interface OOSService {

    /**
     * 保存文件
     *
     * @param oosKey
     * @param in     输入流
     */
    void uploadFile(String oosKey, InputStream in);

    /**
     * 保存文件
     *
     * @param oosKey
     */
    void uploadFile(String oosKey, String content);

    /**
     * 删除文件
     *
     * @param oosKey
     */
    InputStream downloadFile(String oosKey);

    /**
     * 删除文件
     *
     * @param oosKey
     */
    void deleteFile(String oosKey);

    /**
     * 文件是否存在
     *
     * @param oosKey
     * @return
     */
    boolean existsFile(String oosKey);

    /**
     * 文件拷贝
     *
     * @param from
     * @param target
     */
    void copy(String from, String target);

    /**
     * 上传临时文件
     *
     * @param file
     */
    void uploadflowBatchResult(File file);

    /**
     * 下载
     *
     * @param oosKey     key
     * @param bucketName 桶名称
     * @return
     */
    InputStream downloadFileByBucket(String oosKey, String bucketName);

    /**
     * 保存文件
     *
     * @param bucketName
     * @param oosKey
     * @param in
     */
    void uploadFileByBucket(String bucketName, String oosKey, InputStream in);
}
